package com.yorick.file.dao;

import com.yorick.file.entity.AccountFileDto;
import com.yorick.file.entity.DeleteFileDto;
import com.yorick.file.entity.FileDto;
import com.yorick.file.entity.KeywordFileDto;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface FileMapper {

    Integer isFileExist(FileDto fileDto);
    Integer existFileId(FileDto fileDto);

    Integer isPrivate(Integer parentId);
    void insertFile(FileDto fileDto);
    void insertAccountFile(FileDto fileDto);

    List<FileDto> findFileList(FileDto fileDto);
    List<FileDto> findPublicFileList(FileDto fileDto);

    List<FileDto> findFileByKeyword(KeywordFileDto fileDto);
    List<FileDto> findPublicFileByKeyword(KeywordFileDto fileDto);

    FileDto findFileById(FileDto fileDto);

    void updateFile(FileDto fileDto);

    List<Integer> findFileChildList(FileDto fileDto);

    void updateFileStatus(DeleteFileDto fileDto);

    void updateFileLastTime(DeleteFileDto fileDto);

    void deleteFile(DeleteFileDto fileDto);

    void deleteAccountFile(DeleteFileDto fileDto);

    void deletePublicFile(DeleteFileDto fileDto);

    long sumAccountFileSize(Integer aid);

    List<FileDto> getDisabledFileList(Integer aid);

    Integer isDelFileExist(AccountFileDto accountFileDto);

    List<Integer> findFileParentList(FileDto fileDto);

}
